package Test32;

import java.util.ArrayList;
import java.util.Iterator;

//泛型
/*
没有泛型的时候，集合如何存储数据
结论:
    如果我们没有给集合指定类型，默认认为所有的数据类型都是object类型
    此时可以往集合添加任意的数据类型。
    带来一个坏处:我们在获取数据的时候，无法使用他的特有行为。
    此时推出了泛型，可以在添加数据的时候就把类型进行统一。
    而且我们在获取数据的时候，也省的强转了，非常得方便。
 */
public class Test09 {
    public static void main(String[] args) {

        //1、创建集合的对象
        ArrayList<String> list = new ArrayList<>();

        //2、添加数据
        //list.add(123);
        list.add("aaa");
        //list.add(new Student09("zhangsan", 23));

        //3、遍历集合获取里面的每一个元素
        Iterator<String> it = list.iterator();
        while (it.hasNext()) {
            //Object obj = it.next();
            String str = it.next();
            //多态的弊端是不能访问子类的特有功能
            //obj.length();
            //str.length();
            System.out.println(str);
        }
    }
}

class Student09 {
    private String name;
    private int age;


    public Student09() {
    }

    public Student09(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     *
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     *
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     *
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     *
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
}
